home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 2010 April / PCWorld0410.iso / hity wydania / Ubuntu 9.10 PL / karmelkowy-koliberek-desktop-9.10-i386-PL.iso / casper / filesystem.squashfs / usr / share / initramfs-tools / hooks / compcache < prev    next >
Text File  |  2009-07-06  |  2KB  |  88 lines

  1. #!/bin/sh
  2. set -e
  3.  
  4. if [ "$1" = prereqs ]; then
  5.   exit 0
  6. fi
  7.  
  8. . /usr/share/initramfs-tools/hook-functions
  9.  
  10. number=
  11. suffix=
  12. eval $(printf "%s" "$COMPCACHE_SIZE" | \
  13.        sed -nre 's/^ *([1-9][0-9]*) *([%KMGT]) *$/number="\1"; suffix="\2";/p')
  14.  
  15. if [ -z "$number" ] || [ -z "$suffix" ]; then
  16.   exit 0
  17. fi
  18.  
  19. if have_module ramzswap; then
  20.   name=ramzswap
  21.   manual_add_modules ramzswap
  22. elif have_module compcache; then
  23.   name=compcache
  24.   manual_add_modules compcache
  25. else
  26.   exit 0
  27. fi
  28.  
  29. copy_exec /sbin/swapon
  30.  
  31. mkdir -p "$DESTDIR"/etc/udev/rules.d
  32. cat >"$DESTDIR"/etc/udev/rules.d/80-compcache.rules <<EOF
  33. KERNEL=="ramzswap0", ACTION=="add", \\
  34.   RUN+="/sbin/swapon -p 100 /dev/ramzswap0 2>/dev/null"
  35. EOF
  36.  
  37. mem_total="\$(sed -nre 's/^MemTotal:\\s*([0-9]+) kB\$/\\1/p' /proc/meminfo)"
  38.  
  39. case "$suffix" in
  40. %) kbytes="\$(($mem_total * $number / 100))" ;;
  41. K) kbytes=$(($number))                       ;;
  42. M) kbytes=$(($number * 1024))                ;;
  43. G) kbytes=$(($number * 1024 * 1024))         ;;
  44. T) kbytes=$(($number * 1024 * 1024 * 1024))  ;;
  45. esac
  46.  
  47. cat >"$DESTDIR"/scripts/init-top/compcache <<EOF
  48. #!/bin/sh
  49.  
  50. PREREQ=""
  51. prereqs()
  52. {
  53.      echo "\$PREREQ"
  54. }
  55.  
  56. case \$1 in
  57. prereqs)
  58.      prereqs
  59.      exit 0
  60.      ;;
  61. esac
  62.  
  63. # find total amount of available ram
  64. TOTAL_RAM=\$( grep MemTotal /proc/meminfo |tr -d ': [A-Z][a-z]')
  65.  
  66. # Do not use compcache on the liveCD if we have more than 512M
  67. if [ "\${BOOT}" = "casper" ]; then
  68.     if [ "\${TOTAL_RAM}" -gt 524288 ]; then
  69.         exit 0
  70.     fi
  71. fi
  72.  
  73. EOF
  74.  
  75. if [ "$name" = ramzswap ]; then
  76.   cat >>"$DESTDIR"/scripts/init-top/compcache <<EOF
  77. modprobe -q --ignore-install ramzswap disksize_kb="$kbytes"
  78. EOF
  79. else
  80.   cat >>"$DESTDIR"/scripts/init-top/compcache <<EOF
  81. modprobe -q --ignore-install compcache compcache_size_kbytes="$kbytes"
  82. EOF
  83. fi
  84.  
  85. chmod 0755 "$DESTDIR"/scripts/init-top/compcache
  86.  
  87. # vim:set et sw=2 sts=2:
  88.